package com.neuedu.corejava.ch12;

import java.io.Serializable;

/**
 * 一个java对象如果需要保存到文件中或在网络中传输，或在多个进程中传输
 * 则需要将该对象的数据类型进行序列化
 * 把对象序列化需要在定义类型是实现序列化接口Serializable
 * 实现序列化接口，建议生成一个序列化版本号，用于在传输中标识实例对象
 * @author myh
 * @version 2019年8月14日下午1:38:44
 *
 */
public class Student implements Serializable{

	/**
	 * 
	 */
	private static final long serialVersionUID = 5399612216476778948L;
	private int id;
	//对象序列化时使用transient声明的属性不会被序列化，反序列化时会被赋值为默认值（int 为0，String为null）
	private transient String name;
	private transient int age;
	private String sex;

	public Student() {
		super();
	}

	public Student(int id, String name, int age, String sex) {
		super();
		this.id = id;
		this.name = name;
		this.age = age;
		this.sex = sex;
	}

	/**
	 * @return the id
	 */
	public int getId() {
		return id;
	}

	/**
	 * @param id
	 *            the id to set
	 */
	public void setId(int id) {
		this.id = id;
	}

	/**
	 * @return the name
	 */
	public String getName() {
		return name;
	}

	/**
	 * @param name
	 *            the name to set
	 */
	public void setName(String name) {
		this.name = name;
	}

	/**
	 * @return the age
	 */
	public int getAge() {
		return age;
	}

	/**
	 * @param age
	 *            the age to set
	 */
	public void setAge(int age) {
		this.age = age;
	}

	/**
	 * @return the sex
	 */
	public String getSex() {
		return sex;
	}

	/**
	 * @param sex
	 *            the sex to set
	 */
	public void setSex(String sex) {
		this.sex = sex;
	}

	/* (non-Javadoc)
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString() {
		return "Student [id=" + id + ", name=" + name + ", age=" + age
				+ ", sex=" + sex + "]";
	}
}
